using System;
using System.ComponentModel.DataAnnotations;
using Volo.Abp.Application.Dtos;

namespace UserManagementService.DTOs;

/// <summary>
/// 获取用户活动日志输入DTO
/// </summary>
public class GetUserActivityLogsDto : PagedAndSortedResultRequestDto
{
    /// <summary>
    /// 用户ID
    /// </summary>
    public Guid? UserId { get; set; }

    /// <summary>
    /// 用户名筛选
    /// </summary>
    public string UserName { get; set; }

    /// <summary>
    /// 活动类型筛选
    /// </summary>
    public ActivityType? ActivityType { get; set; }

    /// <summary>
    /// 操作结果筛选
    /// </summary>
    public ActivityResult? Result { get; set; }

    /// <summary>
    /// 开始时间
    /// </summary>
    public DateTime? StartTime { get; set; }

    /// <summary>
    /// 结束时间
    /// </summary>
    public DateTime? EndTime { get; set; }

    /// <summary>
    /// IP地址筛选
    /// </summary>
    public string IpAddress { get; set; }

    /// <summary>
    /// 请求URL筛选
    /// </summary>
    public string RequestUrl { get; set; }

    /// <summary>
    /// 是否包含错误信息
    /// </summary>
    public bool? IncludeErrors { get; set; }

    /// <summary>
    /// 最小处理时长（毫秒）
    /// </summary>
    public long? MinDuration { get; set; }

    /// <summary>
    /// 最大处理时长（毫秒）
    /// </summary>
    public long? MaxDuration { get; set; }
}